<?php
    if ($this->getUsuario() != null) {
		if (($this->getUsuario()->getProfessorAutorizado() && $this->getUsuario()->getTipoCadastro() == 'Professor') || ($this->getUsuario()->getTipoCadastro() == 'Administrador')) {
			$pagina 	=	constant('PARAMETRO_0');
			if ($pagina != 'criarcurso') {
				adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'),'erro');
				redireciona(array('inicial'));
				exit();
			}
			$idCurso 			=	isset($_SESSION['constructore']['criarcurso']['idCurso']) ? $_SESSION['constructore']['criarcurso']['idCurso'] : null;
			$idTurma 			=	isset($_SESSION['constructore']['criarcurso']['idTurma']) ? $_SESSION['constructore']['criarcurso']['idTurma'] : null;
			$cursoConstrucao 	=	isset($_SESSION['constructore']['criarcurso']['cursoConstrucao']) ? unserialize($_SESSION['constructore']['criarcurso']['cursoConstrucao']) : null;
			
			
			if ($_POST) {
				
				if (isset($_POST['btnExcluirPerguntasInscricao'])) {
					$erro	=	false;
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^checkPerguntaInscricao[0-9]+$/', $chave)) {
							if (!PerguntaInscricao::apagar(str_replace('checkPerguntaInscricao', '', $chave)))
								$erro	=	true;
						}
					}
					
					if ($erro)
						adicionaMensagem(texto('MENSAGEM_ERRO_APAGAR_PERGUNTAS_DE_INSCRICAO'), 'erro');
					else
						adicionaMensagem(texto('MENSAGEM_SUCESSO_APAGAR_PERGUNTAS_DE_INSCRICAO'));
					
					redireciona(array('criarcurso', 'passo2'));
				}
				
				if (isset($_POST['btnInserirAlternativas'])) {
					$_SESSION['constructore']['criarcurso']['passo2']	=	$_POST;
					
					$listaAlternativas	=	array();
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^strAlternativa[0-9]+$/', $chave)) {
							array_push($listaAlternativas, $post);
						}
					}
					
					if (sizeof($listaAlternativas) < 20) {
						for ($i = 0; $i < 5; $i++) {
							array_push($listaAlternativas, '');
						}
					}
					else {
						adicionaMensagem(texto('MENSAGEM_ERRO_MAXIMO_DE_ALTERNATIVAS'), 'erro');
					}
					
					$_SESSION['constructore']['criarcurso']['passo2']['listaAlternativas']	=	$listaAlternativas;
					
					redireciona(array('criarcurso', 'passo2'));
				}
				
				if (isset($_POST['btnInserirPerguntas']) || isset($_POST['btnSalvarPasso2'])) {
					
					$fezAlgo	=	false;
					
					//INSERINDO PERGUNTAS PADRAO
					$erroPerguntasPadrao	=	false;
					$listaPerguntasPadrao	=	array();
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^checkPerguntaPadrao[0-9]+$/', $chave)) {
							array_push($listaPerguntasPadrao, str_replace('checkPerguntaPadrao', '', $chave));
						}
					}
					
					if (sizeof($listaPerguntasPadrao) > 0) {
						foreach ($listaPerguntasPadrao as $chave => $idPerguntaPadrao) {
							if ($perguntaPadrao = new PerguntaInscricao($idPerguntaPadrao, true)) {
								if (!PerguntaInscricao::inserir($idCurso, $perguntaPadrao->getIdPergunta(), $perguntaPadrao->getPergunta(), $perguntaPadrao->getTipo(), $perguntaPadrao->getAlternativas()))
									$erroPerguntasPadrao	=	true;
							}
							else {
								$erroPerguntasPadrao	=	true;
							}
						}
						
						if ($erroPerguntasPadrao) {
							adicionaMensagem(texto('MENSAGEM_ERRO_IMPORTAR_PERGUNTAS_DE_INSCRICAO_PADRAO'), 'erro');
						}
						else {
							adicionaMensagem(texto('MENSAGEM_SUCESSO_IMPORTAR_PERGUNTAS_DE_INSCRICAO_PADRAO'));
						}
						$fezAlgo	=	true;
					}
					
					//INSERINDO PERGUNTAS ANTIGAS
					$erroPerguntasAntigas	=	false;
					$listaPerguntasAntigas	=	array();
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^checkPerguntaCursoAntigo[0-9]+$/', $chave)) {
							array_push($listaPerguntasAntigas, str_replace('checkPerguntaCursoAntigo', '', $chave));
						}
					}
					
					if (sizeof($listaPerguntasAntigas) > 0) {
						foreach ($listaPerguntasAntigas as $chave => $idPerguntaAntiga) {
							if ($perguntaPadrao = new PerguntaInscricao($idPerguntaAntiga)) {
								if (!PerguntaInscricao::inserir($idCurso, NULL, $perguntaPadrao->getPergunta(), $perguntaPadrao->getTipo(), $perguntaPadrao->getAlternativas()))
									$erroPerguntasAntigas	=	true;
							}
							else {
								$erroPerguntasAntigas	=	true;
							}
						}
						
						if ($erroPerguntasAntigas) {
							adicionaMensagem(texto('MENSAGEM_ERRO_IMPORTAR_PERGUNTAS_DE_INSCRICAO_ANTIGAS'), 'erro');
						}
						else {
							adicionaMensagem(texto('MENSAGEM_SUCESSO_IMPORTAR_PERGUNTAS_DE_INSCRICAO_ANTIGAS'));
						}
						
						$fezAlgo	=	true;
					}
					
					//INSERINDO PERGUNTAS NOVAS
					$erroPerguntas		=	false;
					$strPergunta		=	pegaPost('strPergunta');
					$strTipoPergunta	=	pegaPost('strTipoPergunta');
					
					$listaAlternativas	=	array();
					foreach($_POST as $chave => $post) {
						if (preg_match('/^strAlternativa[0-9]+$/', $chave)) {
							array_push($listaAlternativas, $post);
						}
					}
					
					if ($strPergunta != NULL || $strTipoPergunta != NULL || sizeof($listaAlternativas) > 0) {
						if (($strTipoPergunta == 'Seleção Única' || $strTipoPergunta == 'Seleção Múltipla') && sizeof($listaAlternativas) == 0) {
							$erroPerguntas		=	true;
							adicionaMensagem(texto('MENSAGEM_ERRO_INSERIR_ALTERNATIVAS_PERGUNTAS_DE_INSCRICAO'), 'erro');
							$listaAlternativas	=	array('', '', '', '', '');
						}
						else {
							if (!PerguntaInscricao::inserir($idCurso, NULL, $strPergunta, $strTipoPergunta, $listaAlternativas)) {
								if ($strTipoPergunta == 'Discursiva' || $strTipoPergunta == 'Sim e Não')
									$listaAlternativas	=	array();
								
								$erroPerguntas	=	true;
								adicionaMensagem(texto('MENSAGEM_ERRO_INSERIR_PERGUNTAS_DE_INSCRICAO'), 'erro');
							}
						}
						if ($erroPerguntas) {
							$_SESSION['constructore']['criarcurso']['passo2']	=	$_POST;
							$_SESSION['constructore']['criarcurso']['passo2']['listaAlternativas']	=	$listaAlternativas;
						}
						else {
							adicionaMensagem(texto('MENSAGEM_SUCESSO_INSERIR_PERGUNTAS_DE_INSCRICAO'));
						}
						
						$fezAlgo	=	true;
					}
					
					if (isset($_POST['btnSalvarPasso2']) && !$erroPerguntas && !$erroPerguntasAntigas && !$erroPerguntasPadrao) {
						adicionaMensagem(texto('MENSAGEM_SUCESSO_CRIAR_CURSO', array(texto('AREA_CRIAR_CURSO_PASSO2'))));
						redireciona(array('criarcurso', 'passo3'));
					}
					else {
						if (!$fezAlgo) {
							adicionaMensagem(texto('MENSAGEM_NENHUM_MODIFICACAO_PERGUNTAS_DE_INSCRICAO'));
						}
						redireciona(array('criarcurso', 'passo2'));
					}
				}
				
				if (isset($_POST['btnCancelarEdicao']))
					redireciona(array('criarcurso', 'passo2'));
				
				foreach ($_POST as $chave => $post) {
					if (preg_match('/^btnEditar[0-9]+$/', $chave)) {
						$idPerguntaEditada	=	str_replace('btnEditar', '', $chave);
						$perguntaEditada	=	new PerguntaInscricao($idPerguntaEditada);
						
						$_SESSION['constructore']['criarcurso']['passo2']['idPerguntaEditada']			=	$idPerguntaEditada;
						$_SESSION['constructore']['criarcurso']['passo2']['strPerguntaEdicao']			=	$perguntaEditada->getPergunta();
						$_SESSION['constructore']['criarcurso']['passo2']['strTipoPerguntaEdicao']		=	$perguntaEditada->getTipo();
						
						//CORRIGINDO PARA QUE SEMPRE APARECAM MULTIPLOS DE 5 NAS ALTERNATIVAS
						$listaAlternativas	=	$perguntaEditada->getAlternativas();
						
						if (sizeof($listaAlternativas) % 5 != 0) {
							$qtdAlternativasFaltando	=	5 - (sizeof($listaAlternativas) % 5);
							
							while ($qtdAlternativasFaltando > 0) {
								array_push($listaAlternativas, '');
								$qtdAlternativasFaltando--;
							}
						}
						
						$_SESSION['constructore']['criarcurso']['passo2']['listaAlternativasEdicao']	=	$listaAlternativas;
						redireciona(array('criarcurso', 'passo2'));
					}
					
					if (preg_match('/^btnInserirAlternativasEdicao[0-9]+$/', $chave)) {
						$idPerguntaEditada	=	str_replace('btnInserirAlternativasEdicao', '', $chave);
						
						$listaAlternativas	=	array();
						
						foreach($_POST as $chave => $post) {
							if (preg_match('/^strAlternativaEdicao[0-9]+$/', $chave)) {
								array_push($listaAlternativas, $post);
							}
						}
						
						if (sizeof($listaAlternativas) < 20) {
							for ($i = 0; $i < 5; $i++) {
								array_push($listaAlternativas, '');
							}
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_MAXIMO_DE_ALTERNATIVAS'), 'erro');
						}
						
						$_SESSION['constructore']['criarcurso']['passo2']	=	$_POST;
						$_SESSION['constructore']['criarcurso']['passo2']['idPerguntaEditada']			=	$idPerguntaEditada;
						$_SESSION['constructore']['criarcurso']['passo2']['listaAlternativasEdicao']	=	$listaAlternativas;
						redireciona(array('criarcurso', 'passo2'));
					}
					
					if (preg_match('/^btnSalvarEdicao[0-9]+$/', $chave)) {
						$erroPerguntas		=	false;
						$idPerguntaEditada	=	str_replace('btnSalvarEdicao', '', $chave);
						
						$strPergunta		=	pegaPost('strPerguntaEdicao');
						$strTipoPergunta	=	pegaPost('strTipoPerguntaEdicao');
						
						$listaAlternativas	=	array();
						foreach($_POST as $chave => $post) {
							if (preg_match('/^strAlternativaEdicao[0-9]+$/', $chave)) {
								array_push($listaAlternativas, $post);
							}
						}
						
						if ($strPergunta != NULL || $strTipoPergunta != NULL || sizeof($listaAlternativas) > 0) {
							if (($strTipoPergunta == 'Seleção Única' || $strTipoPergunta == 'Seleção Múltipla') && sizeof($listaAlternativas) == 0) {
								$erroPerguntas	=	true;
								adicionaMensagem(texto('MENSAGEM_ERRO_INSERIR_ALTERNATIVAS_PERGUNTAS_DE_INSCRICAO'), 'erro');
								$listaAlternativas	=	array('', '', '', '', '');
							}
							else {
								if (!PerguntaInscricao::editar($idPerguntaEditada, $idCurso, NULL, $strPergunta, $strTipoPergunta, $listaAlternativas)) {
									if (!($strTipoPergunta == 'Seleção Única' || $strTipoPergunta == 'Seleção Múltipla'))
										$listaAlternativas	=	array();
									
									$erroPerguntas	=	true;
									adicionaMensagem(texto('MENSAGEM_ERRO_EDITAR_PERGUNTAS_DE_INSCRICAO'), 'erro');
								}
							}
						}
						
						if ($erroPerguntas) {
							$_SESSION['constructore']['criarcurso']['passo2']	=	$_POST;
							$_SESSION['constructore']['criarcurso']['passo2']['idPerguntaEditada']			=	$idPerguntaEditada;
							$_SESSION['constructore']['criarcurso']['passo2']['listaAlternativasEdicao']	=	$listaAlternativas;
						}
						else
							adicionaMensagem(texto('MENSAGEM_SUCESSO_EDITAR_PERGUNTAS_DE_INSCRICAO'));
							
						redireciona(array('criarcurso', 'passo2'));
					}
				}
			}
			else {
				//CONFIGURANDO TEXTOS PARA O TEMPLATE
				
				if ($resultadoPerguntasPadrao	=	PerguntaInscricao::buscar(NULL, NULL, NULL, true)) {
					$listaPerguntasPadrao		=	$resultadoPerguntasPadrao['listaResultados'];
					
					$cursosProfessor	=	array();
					foreach ($this->getUsuario()->getCursos() as $idCursoProfessor => $curso) {
						if ($curso['participacao'] == 'Professor')
							array_push($cursosProfessor, $idCursoProfessor);
					}
					
					$qtdCursosConseguiuPerguntas	=	0;
					$listaPerguntasCursosAntigos	=	array();
					
					foreach ($cursosProfessor as $idCursoProfessor) {
						if (($idCursoProfessor != $idCurso) && ($resultadoPerguntasCursosAntigos = PerguntaInscricao::buscar($idCursoProfessor, NULL, false))) {
							$qtdCursosConseguiuPerguntas++;
							if (!empty($resultadoPerguntasCursosAntigos['listaResultados'])) {
								$listaPerguntasCursosAntigos	=	$resultadoPerguntasCursosAntigos['listaResultados'];
							}
						}
					}
					if ($qtdCursosConseguiuPerguntas == sizeof($cursosProfessor) - 1) {
						if ($resultado = PerguntaInscricao::buscar($idCurso, NULL, NULL, false, 'idPergunta')) {
							$listaPerguntasInscricao	=	$resultado['listaResultados'];
							
							foreach ($listaPerguntasInscricao as $chave => $pergunta) {
								$listaAlternativasPergunta	=	PerguntaInscricaoAlternativa::buscar($pergunta['idPergunta']);
								$listaPerguntasInscricao[$chave]['alternativas']	=	$listaAlternativasPergunta['listaResultados'];
							}
							
							$possivelEditar		=	true;
							$possivelResponder	=	false;
							$idPerguntaEditada	=	NULL;
							
							if (isset($_SESSION['constructore']['criarcurso']['passo2']) && isset($_SESSION['constructore']['criarcurso']['passo2']['idPerguntaEditada']))
								$idPerguntaEditada	=	$_SESSION['constructore']['criarcurso']['passo2']['idPerguntaEditada'];
							
							$this->getSmarty()->assign('listaPerguntasPadrao', $listaPerguntasPadrao);
							$this->getSmarty()->assign('listaPerguntasCursosAntigos', $listaPerguntasCursosAntigos);
							$this->getSmarty()->assign('listaPerguntasInscricao', $listaPerguntasInscricao);
							$this->getSmarty()->assign('possivelEditar', $possivelEditar);
							$this->getSmarty()->assign('possivelResponder', $possivelResponder);
							$this->getSmarty()->assign('idPerguntaEditada', $idPerguntaEditada);
							
							$this->exibir('criarcursopasso2');
							if (isset($_SESSION['constructore']['criarcurso']['passo2']))
								unset($_SESSION['constructore']['criarcurso']['passo2']);
							if (isset($_SESSION['constructore']['criarcurso']['dadosCurso']))
								unset($_SESSION['constructore']['criarcurso']['dadosCurso']);
							if (isset($_SESSION['constructore']['criarcurso']['cursoConstrucao']))
								unset($_SESSION['constructore']['criarcurso']['cursoConstrucao']);
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'),'erro');
							redireciona($_SESSION['constructore']['URLOrigem']);
						}
					}
					else {
						adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'),'erro');
						redireciona($_SESSION['constructore']['URLOrigem']);
					}
				}
				else {
					adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'),'erro');
					redireciona($_SESSION['constructore']['URLOrigem']);
				}
			}
		}
    	else {
			adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'),'erro');
			redireciona(array('inicial'));
		}
	}
	else {
		adicionaMensagem(texto('MENSAGEM_ERRO_USUARIO_NAO_LOGADO'),'erro');
		redireciona(array('principal'));
	}
?>